DETALLES TÉCNICOS
PRELIMINARES
Este programa
está desarrollado en Visual Basic
2005, pero para su correcto funcionamiento y si se desea
modificar el código
fuente, deben tomarse en cuenta los siguientes detalles
técnicos:
- El archivo
inpout32.dll debe ubicarse en C:Windowssystem para Windows Vista o en
C:Windowssystem32 para Windows
XP. - Teniendo instalado Windows Media Player, debe
habilitarse para que pueda interactuar con Visual Basic 2005.
Para ello se deben seguir estos pasos: ir al menú
Herramientas, Elegir elementos del cuadro de
herramientas…, luego en la
pestaña Componentes COM buscar Windows Media
Player y ponerle el cheque de
selección. Al tener instalado Windows
Media Player, automáticamente el archivo DLL necesario
se encuentra en
C:Windowssystem32wmp.dll. - Si se quiere ejecutar el programa en diferentes
computadoras, el código del
botón playmusicButton se debe actualizar de
acuerdo a la ruta de dirección de los archivos de
sonido,
específicamente en las siguientes cuatro líneas
de código:
- Dim song =
AxWindowsMediaPlayer.newMedia("C:UsersJaime
MontoyaDesktopPort_Testingmyresourcesfocosazulesencendidos.mp3") - Dim song =
AxWindowsMediaPlayer.newMedia("C:UsersJaime
MontoyaDesktopPort_Testingmyresourcesfocosrojosencendidos.mp3") - Dim song =
AxWindowsMediaPlayer.newMedia("C:UsersJaime
MontoyaDesktopPort_Testingmyresourcesfocosamarillosencendidos.mp3") - Dim song =
AxWindowsMediaPlayer.newMedia("C:UsersJaime
MontoyaDesktopPort_Testingmyresourcesfocosverdesencendidos.mp3")
Parallel Port Monitor
(c) 1997-2002 Fred Bulback
email:
fred[arroba]geekhideout.comurl:
- Verificar que los resultados del programa son
correctos y que la
comunicación con el puerto
paralelo se está haciendo realmente y tal como
aparece en las imágenes de las fotos en
el programa creado en Visual Basic 2005. Para ello, en vez de
medir voltajes en los pines, resulta muy práctico
verificar el buen funcionamiento con un programa como el
siguiente: - El objeto Timer1 debe estar inicialmente con
la propiedad
Enabled en False, pues el conteo binario con
los focos no se debe iniciar sino hasta que se haga clic en
el botón Contador Binario.
FUNCIONAMIENTO DEL
PROGRAMA
Al iniciar el programa,
aparecerá la siguiente pantalla:
Al hacer clic en el botón Clic On/Off, los
focos se encenderán y apagarán al hacer clic sobre
ellos. Si el foco está apagado y se hace clic sobre
él, se encenderá, y si el foco estuviera encendido
y se hiciera clic sobre él, se apagará. Cuando un
foco tenga el fondo blanco y un cero debajo de él,
significa que está apagado. Cuando un foco tenga fondo
anaranjado y un uno sobre él, significa que está
encendido. Por ejemplo, luego de encender los focos amarillos y
verdes (haciendo clic sobre ellos), se tendrá lo
siguiente:
Al hacer clic sobre el botón Contador
Binario, se inicializará un conteo binario con los
focos, comenzando desde 0 hasta terminar en 255 (11111111 en
sistema
binario y FF en sistema
hexadecimal). Cada segundo se dará un incremento en uno
del conteo. Cuando se llegue a 255, se reinicia el contador y
sigue el conteo indefinidamente hasta que se ejecute una acción
que detenga la cuenta. Si la velocidad es
Normal, el incremento en el conteo se irá dando
cada segundo; con velocidad Lenta, el incremento en el
conteo será cada dos segundos; si la velocidad
seleccionada es Rápido, el incremento en el conteo
se irá dando cada medio segundo. Por ejemplo, cuando el
contador vaya en 157 (10011101 binario y 9D hexadecimal), se
verá de esta forma:
El botón Encender Focos simplemente
encenderá los ocho focos:
Lo que hará el botón Apagar Focos
es simplemente apagar todos los focos:
Al hacer clic sobre el botón Play, se
encenderán los focos del color que
esté seleccionado en los botones de radio. A la vez,
el botón Play de Windows Media Player se
activará. Por ejemplo, si estuviera seleccionado el color
Rojo y se hiciera clic en el botón Play,
encenderían los focos Rojos y se activaría
el botón Play de Windows Media
Player:
Luego al hacer clic sobre el botón Play de
Windows Media Player, se escuchará que los focos rojos
están encendidos (rojos en este caso, pues dependiendo de
los focos que se encuentren encendidos, ese color dirá la
grabación de sonido):
Haciendo clic en el botón Stop, se
deshabilitará el sonido, se apagarán todos los
focos, y el usuario podrá hacer clic sobre el botón
Play y encender otra pareja de focos de otro color, o
hacer clic sobre cualquiera de los botones que se muestran en la
parte inferior del formulario.
El botón Ayuda mostrará una ventana
de ayuda sobre el uso del programa:
El botón Acerca de mostrará la
siguiente ventana:
CÓDIGO DEL
PROGRAMA
CÓDIGO DEL FORMULARIO
acercadeForm.vb
Public Class acercadeForm
Private Sub cerrarButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cerrarButton.Click
Me.Close()
'Cerrar formulario actual.
End Sub
End Class
CÓDIGO DEL FORMULARIO
ayudaForm.vb
Public Class ayudaForm
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.Close()
'Cerrar formulario actual.
End Sub
End Class
CÓDIGO DEL FORMULARIO
Form1.vb
Option Strict Off
Option Explicit On
Module
InpOut32_Declarations
'Inp and Out declarations for port I/O
using inpout32.dll.
Public Declare Function
Inp Lib "inpout32.dll" Alias "Inp32"
(ByVal
PortAddress As
Short) As Short
Public Declare Sub
Out Lib "inpout32.dll" Alias "Out32"
(ByVal
PortAddress As
Short, ByVal Value As Short)
End Module
Module variables 'Para
declarar variables globales que se van a utilizar al
programar.
Public binary378port
As String 'Variable para
almacenar en una cadena el valor binario
del puerto 378 del puerto paralelo.
Public valordecimal
As Integer 'Variable para
almacenar el resultado de la conversión de binario a
decimal.
Public valorshort
As Short 'Variable para
almacenar en tipo Short el resultado de la conversión de
decimal a hexadecimal.
Public contadorfoco7
As Integer 'Variable para
controlar el conteo binario con el foco 7.
Public contadorfoco6
As Integer 'Variable para
controlar el conteo binario con el foco 6.
Public contadorfoco5
As Integer 'Variable para
controlar el conteo binario con el foco 5.
Public contadorfoco4
As Integer 'Variable para
controlar el conteo binario con el foco 4.
Public contadorfoco3
As Integer 'Variable para
controlar el conteo binario con el foco 3.
Public contadorfoco2
As Integer 'Variable para
controlar el conteo binario con el foco 2.
Public contadorfoco1
As Integer 'Variable para
controlar el conteo binario con el foco 1.
End Module
Public Class Form1
Private Sub bulb1off_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bulb1off.Click
bulb1on.Visible = True
bulb1off.Visible = False
Label1.Text = "1"
binary378port = Label1.Text + Label2.Text + Label3.Text
+ Label4.Text + Label5.Text + Label6.Text + Label7.Text +
Label8.Text
'Se convierte el valor binario contenido
en la variable "binary378port" a decimal.
valordecimal = 0
For i As Integer =
Len(binary378port) To
1 Step
-1
valordecimal = valordecimal + Val(Mid(binary378port, i,
1)) * 2 ^ (8 – i) 'Toma el
último dígito y lo multiplica por 2 a la cero,
luego el penúltimo por 2 a la uno y así
sucesivamente, pues se está realizando la
conversión de binario a decimal.
Next
'Se convierte el valor decimal
(contenido en la variable "valordecimal") al correspondiente
hexadecimal en tipo Short.
valorshort = CShort(valordecimal)
'Se manda el valor correspondiente al
puerto paralelo para que se enciendan y apaguen los focos
correspondientes.
Out(&H378, valorshort) 'En el puerto 378 (valor hexadecimal) del puerto
paralelo, se manda como salida el valor hexadecimal contenido en
la variable "valorhexadecimal" en tipo Short.
End Sub
Private Sub bulb1on_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bulb1on.Click
bulb1off.Visible = True
bulb1on.Visible = False
Label1.Text = "0"
binary378port = Label1.Text + Label2.Text + Label3.Text
+ Label4.Text + Label5.Text + Label6.Text + Label7.Text +
Label8.Text
'Se convierte el valor binario contenido
en la variable "binary378port" a decimal.
valordecimal = 0
For i As Integer =
Len(binary378port) To
1 Step
-1
valordecimal = valordecimal + Val(Mid(binary378port, i,
1)) * 2 ^ (8 – i) 'Toma el
último dígito y lo multiplica por 2 a la cero,
luego el penúltimo por 2 a la uno y así
sucesivamente, pues se está realizando la
conversión de binario a decimal.
Next
'Se convierte el valor decimal
(contenido en la variable "valordecimal") al correspondiente
hexadecimal en tipo Short.
valorshort = CShort(valordecimal)
'Se manda el valor correspondiente al
puerto paralelo para que se enciendan y apaguen los focos
correspondientes.
Out(&H378, valorshort) 'En el puerto 378 (valor hexadecimal) del puerto
paralelo, se manda como salida el valor hexadecimal contenido en
la variable "valorhexadecimal" en tipo Short.
End Sub
Private Sub bulb2on_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bulb2on.Click
bulb2off.Visible = True
bulb2on.Visible = False
Label2.Text = "0"
binary378port = Label1.Text + Label2.Text + Label3.Text
+ Label4.Text + Label5.Text + Label6.Text + Label7.Text +
Label8.Text
'Se convierte el valor binario contenido
en la variable "binary378port" a decimal.
valordecimal = 0
For i As Integer =
Len(binary378port) To
1 Step
-1
valordecimal = valordecimal + Val(Mid(binary378port, i,
1)) * 2 ^ (8 – i) 'Toma el
último dígito y lo multiplica por 2 a la cero,
luego el penúltimo por 2 a la uno y así
sucesivamente, pues se está realizando la
conversión de binario a decimal.
Next
'Se convierte el valor decimal
(contenido en la variable "valordecimal") al correspondiente
hexadecimal en tipo Short.
valorshort = CShort(valordecimal)
'Se manda el valor correspondiente al
puerto paralelo para que se enciendan y apaguen los focos
correspondientes.
Out(&H378, valorshort) 'En el puerto 378 (valor hexadecimal) del puerto
paralelo, se manda como salida el valor hexadecimal contenido en
la variable "valorhexadecimal" en tipo Short.
End Sub
Private Sub bulb3on_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bulb3on.Click
bulb3off.Visible = True
bulb3on.Visible = False
Label3.Text = "0"
binary378port = Label1.Text + Label2.Text + Label3.Text
+ Label4.Text + Label5.Text + Label6.Text + Label7.Text +
Label8.Text
'Se convierte el valor binario contenido
en la variable "binary378port" a decimal.
valordecimal = 0
For i As Integer =
Len(binary378port) To
1 Step
-1
valordecimal = valordecimal + Val(Mid(binary378port, i,
1)) * 2 ^ (8 – i) 'Toma el
último dígito y lo multiplica por 2 a la cero,
luego el penúltimo por 2 a la uno y así
sucesivamente, pues se está realizando la
conversión de binario a decimal.
Next
'Se convierte el valor decimal
(contenido en la variable "valordecimal") al correspondiente
hexadecimal en tipo Short.
valorshort = CShort(valordecimal)
'Se manda el valor correspondiente al
puerto paralelo para que se enciendan y apaguen los focos
correspondientes.
Out(&H378, valorshort) 'En el puerto 378 (valor hexadecimal) del puerto
paralelo, se manda como salida el valor hexadecimal contenido en
la variable "valorhexadecimal" en tipo Short.
End Sub
Private Sub bulb4on_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bulb4on.Click
bulb4off.Visible = True
bulb4on.Visible = False
Label4.Text = "0"
binary378port = Label1.Text + Label2.Text + Label3.Text
+ Label4.Text + Label5.Text + Label6.Text + Label7.Text +
Label8.Text
'Se convierte el valor binario contenido
en la variable "binary378port" a decimal.
valordecimal = 0
For i As Integer =
Len(binary378port) To
1 Step
-1
valordecimal = valordecimal + Val(Mid(binary378port, i,
1)) * 2 ^ (8 – i) 'Toma el
último dígito y lo multiplica por 2 a la cero,
luego el penúltimo por 2 a la uno y así
sucesivamente, pues se está realizando la
conversión de binario a decimal.
Next
'Se convierte el valor decimal
(contenido en la variable "valordecimal") al correspondiente
hexadecimal en tipo Short.
valorshort = CShort(valordecimal)
'Se manda el valor correspondiente al
puerto paralelo para que se enciendan y apaguen los focos
correspondientes.
Out(&H378, valorshort) 'En el puerto 378 (valor hexadecimal) del puerto
paralelo, se manda como salida el valor hexadecimal contenido en
la variable "valorhexadecimal" en tipo Short.
End Sub
Private Sub bulb5on_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bulb5on.Click
bulb5off.Visible = True
bulb5on.Visible = False
Label5.Text = "0"
binary378port = Label1.Text + Label2.Text + Label3.Text
+ Label4.Text + Label5.Text + Label6.Text + Label7.Text +
Label8.Text
'Se convierte el valor binario contenido
en la variable "binary378port" a decimal.
valordecimal = 0
For i As Integer =
Len(binary378port) To
1 Step
-1
valordecimal = valordecimal + Val(Mid(binary378port, i,
1)) * 2 ^ (8 – i) 'Toma el
último dígito y lo multiplica por 2 a la cero,
luego el penúltimo por 2 a la uno y así
sucesivamente, pues se está realizando la
conversión de binario a decimal.
Next
'Se convierte el valor decimal
(contenido en la variable "valordecimal") al correspondiente
hexadecimal en tipo Short.
valorshort = CShort(valordecimal)
'Se manda el valor correspondiente al
puerto paralelo para que se enciendan y apaguen los focos
correspondientes.
Out(&H378, valorshort) 'En el puerto 378 (valor hexadecimal) del puerto
paralelo, se manda como salida el valor hexadecimal contenido en
la variable "valorhexadecimal" en tipo Short.
End Sub
Private Sub bulb6on_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bulb6on.Click
bulb6off.Visible = True
bulb6on.Visible = False
Label6.Text = "0"
binary378port = Label1.Text + Label2.Text + Label3.Text
+ Label4.Text + Label5.Text + Label6.Text + Label7.Text +
Label8.Text
'Se convierte el valor binario contenido
en la variable "binary378port" a decimal.
valordecimal = 0
For i As Integer =
Len(binary378port) To
1 Step
-1
valordecimal = valordecimal + Val(Mid(binary378port, i,
1)) * 2 ^ (8 – i) 'Toma el
último dígito y lo multiplica por 2 a la cero,
luego el penúltimo por 2 a la uno y así
sucesivamente, pues se está realizando la
conversión de binario a decimal.
Next
'Se convierte el valor decimal
(contenido en la variable "valordecimal") al correspondiente
hexadecimal en tipo Short.
valorshort = CShort(valordecimal)
'Se manda el valor correspondiente al
puerto paralelo para que se enciendan y apaguen los focos
correspondientes.
Out(&H378, valorshort) 'En el puerto 378 (valor hexadecimal) del puerto
paralelo, se manda como salida el valor hexadecimal contenido en
la variable "valorhexadecimal" en tipo Short.
End Sub
Private Sub bulb7on_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bulb7on.Click
bulb7off.Visible = True
bulb7on.Visible = False
Label7.Text = "0"
binary378port = Label1.Text + Label2.Text + Label3.Text
+ Label4.Text + Label5.Text + Label6.Text + Label7.Text +
Label8.Text
'Se convierte el valor binario contenido
en la variable "binary378port" a decimal.
valordecimal = 0
For i As Integer =
Len(binary378port) To
1 Step
-1
valordecimal = valordecimal + Val(Mid(binary378port, i,
1)) * 2 ^ (8 – i) 'Toma el
último dígito y lo multiplica por 2 a la cero,
luego el penúltimo por 2 a la uno y así
sucesivamente, pues se está realizando la
conversión de binario a decimal.
Next
'Se convierte el valor decimal
(contenido en la variable "valordecimal") al correspondiente
hexadecimal en tipo Short.
valorshort = CShort(valordecimal)
'Se manda el valor correspondiente al
puerto paralelo para que se enciendan y apaguen los focos
correspondientes.
Out(&H378, valorshort) 'En el puerto 378 (valor hexadecimal) del puerto
paralelo, se manda como salida el valor hexadecimal contenido en
la variable "valorhexadecimal" en tipo Short.
End Sub
Private Sub bulb8on_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bulb8on.Click
bulb8off.Visible = True
bulb8on.Visible = False
Label8.Text = "0"
binary378port = Label1.Text + Label2.Text + Label3.Text
+ Label4.Text + Label5.Text + Label6.Text + Label7.Text +
Label8.Text
'Se convierte el valor binario contenido
en la variable "binary378port" a decimal.
valordecimal = 0
For i As Integer =
Len(binary378port) To
1 Step
-1
valordecimal = valordecimal + Val(Mid(binary378port, i,
1)) * 2 ^ (8 – i) 'Toma el
último dígito y lo multiplica por 2 a la cero,
luego el penúltimo por 2 a la uno y así
sucesivamente, pues se está realizando la
conversión de binario a decimal.
Next
'Se convierte el valor decimal
(contenido en la variable "valordecimal") al correspondiente
hexadecimal en tipo Short.
valorshort = CShort(valordecimal)
'Se manda el valor correspondiente al
puerto paralelo para que se enciendan y apaguen los focos
correspondientes.
Out(&H378, valorshort) 'En el puerto 378 (valor hexadecimal) del puerto
paralelo, se manda como salida el valor hexadecimal contenido en
la variable "valorhexadecimal" en tipo Short.
End Sub
Private Sub bulb2off_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bulb2off.Click
bulb2on.Visible = True
bulb2off.Visible = False
Label2.Text = "1"
binary378port = Label1.Text + Label2.Text + Label3.Text
+ Label4.Text + Label5.Text + Label6.Text + Label7.Text +
Label8.Text
'Se convierte el valor binario contenido
en la variable "binary378port" a decimal.
valordecimal = 0
For i As Integer =
Len(binary378port) To
1 Step
-1
valordecimal = valordecimal + Val(Mid(binary378port, i,
1)) * 2 ^ (8 – i) 'Toma el
último dígito y lo multiplica por 2 a la cero,
luego el penúltimo por 2 a la uno y así
sucesivamente, pues se está realizando la
conversión de binario a decimal.
Next
'Se convierte el valor decimal
(contenido en la variable "valordecimal") al correspondiente
hexadecimal en tipo Short.
valorshort = CShort(valordecimal)
'Se manda el valor correspondiente al
puerto paralelo para que se enciendan y apaguen los focos
correspondientes.
Out(&H378, valorshort) 'En el puerto 378 (valor hexadecimal) del puerto
paralelo, se manda como salida el valor hexadecimal contenido en
la variable "valorhexadecimal" en tipo Short.
End Sub
Private Sub bulb3off_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bulb3off.Click
bulb3on.Visible = True
bulb3off.Visible = False
Label3.Text = "1"
binary378port = Label1.Text + Label2.Text + Label3.Text
+ Label4.Text + Label5.Text + Label6.Text + Label7.Text +
Label8.Text
'Se convierte el valor binario contenido
en la variable "binary378port" a decimal.
valordecimal = 0
For i As Integer =
Len(binary378port) To
1 Step
-1
valordecimal = valordecimal + Val(Mid(binary378port, i,
1)) * 2 ^ (8 – i) 'Toma el
último dígito y lo multiplica por 2 a la cero,
luego el penúltimo por 2 a la uno y así
sucesivamente, pues se está realizando la
conversión de binario a decimal.
Next
'Se convierte el valor decimal
(contenido en la variable "valordecimal") al correspondiente
hexadecimal en tipo Short.
valorshort = CShort(valordecimal)
'Se manda el valor correspondiente al
puerto paralelo para que se enciendan y apaguen los focos
correspondientes.
Out(&H378, valorshort) 'En el puerto 378 (valor hexadecimal) del puerto
paralelo, se manda como salida el valor hexadecimal contenido en
la variable "valorhexadecimal" en tipo Short.
End Sub
Private Sub bulb4off_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bulb4off.Click
bulb4on.Visible = True
bulb4off.Visible = False
Label4.Text = "1"
binary378port = Label1.Text + Label2.Text + Label3.Text
+ Label4.Text + Label5.Text + Label6.Text + Label7.Text +
Label8.Text
'Se convierte el valor binario contenido
en la variable "binary378port" a decimal.
valordecimal = 0
For i As Integer =
Len(binary378port) To
1 Step
-1
valordecimal = valordecimal + Val(Mid(binary378port, i,
1)) * 2 ^ (8 – i) 'Toma el
último dígito y lo multiplica por 2 a la cero,
luego el penúltimo por 2 a la uno y así
sucesivamente, pues se está realizando la
conversión de binario a decimal.
Next
'Se convierte el valor decimal
(contenido en la variable "valordecimal") al correspondiente
hexadecimal en tipo Short.
valorshort = CShort(valordecimal)
'Se manda el valor correspondiente al
puerto paralelo para que se enciendan y apaguen los focos
correspondientes.
Out(&H378, valorshort) 'En el puerto 378 (valor hexadecimal) del puerto
paralelo, se manda como salida el valor hexadecimal contenido en
la variable "valorhexadecimal" en tipo Short.
End Sub
Private Sub bulb5off_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bulb5off.Click
bulb5on.Visible = True
bulb5off.Visible = False
Label5.Text = "1"
binary378port = Label1.Text + Label2.Text + Label3.Text
+ Label4.Text + Label5.Text + Label6.Text + Label7.Text +
Label8.Text
'Se convierte el valor binario contenido
en la variable "binary378port" a decimal.
valordecimal = 0
For i As Integer =
Len(binary378port) To
1 Step
-1
valordecimal = valordecimal + Val(Mid(binary378port, i,
1)) * 2 ^ (8 – i) 'Toma el
último dígito y lo multiplica por 2 a la cero,
luego el penúltimo por 2 a la uno y así
sucesivamente, pues se está realizando la
conversión de binario a decimal.
Next
'Se convierte el valor decimal
(contenido en la variable "valordecimal") al correspondiente
hexadecimal en tipo Short.
valorshort = CShort(valordecimal)
'Se manda el valor correspondiente al
puerto paralelo para que se enciendan y apaguen los focos
correspondientes.
Out(&H378, valorshort) 'En el puerto 378 (valor hexadecimal) del puerto
paralelo, se manda como salida el valor hexadecimal contenido en
la variable "valorhexadecimal" en tipo Short.
End Sub
Private Sub bulb6off_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bulb6off.Click
bulb6on.Visible = True
bulb6off.Visible = False
Label6.Text = "1"
binary378port = Label1.Text + Label2.Text + Label3.Text
+ Label4.Text + Label5.Text + Label6.Text + Label7.Text +
Label8.Text
'Se convierte el valor binario contenido
en la variable "binary378port" a decimal.
valordecimal = 0
For i As Integer =
Len(binary378port) To
1 Step
-1
valordecimal = valordecimal + Val(Mid(binary378port, i,
1)) * 2 ^ (8 – i) 'Toma el
último dígito y lo multiplica por 2 a la cero,
luego el penúltimo por 2 a la uno y así
sucesivamente, pues se está realizando la
conversión de binario a decimal.
Next
'Se convierte el valor decimal
(contenido en la variable "valordecimal") al correspondiente
hexadecimal en tipo Short.
valorshort = CShort(valordecimal)
'Se manda el valor correspondiente al
puerto paralelo para que se enciendan y apaguen los focos
correspondientes.
Out(&H378, valorshort) 'En el puerto 378 (valor hexadecimal) del puerto
paralelo, se manda como salida el valor hexadecimal contenido en
la variable "valorhexadecimal" en tipo Short.
End Sub
Private Sub bulb7off_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bulb7off.Click
bulb7on.Visible = True
bulb7off.Visible = False
Label7.Text = "1"
binary378port = Label1.Text + Label2.Text + Label3.Text
+ Label4.Text + Label5.Text + Label6.Text + Label7.Text +
Label8.Text
'Se convierte el valor binario contenido
en la variable "binary378port" a decimal.
valordecimal = 0
For i As Integer =
Len(binary378port) To
1 Step
-1
valordecimal = valordecimal + Val(Mid(binary378port, i,
1)) * 2 ^ (8 – i) 'Toma el
último dígito y lo multiplica por 2 a la cero,
luego el penúltimo por 2 a la uno y así
sucesivamente, pues se está realizando la
conversión de binario a decimal.
Next
'Se convierte el valor decimal
(contenido en la variable "valordecimal") al correspondiente
hexadecimal en tipo Short.
valorshort = CShort(valordecimal)
'Se manda el valor correspondiente al
puerto paralelo para que se enciendan y apaguen los focos
correspondientes.
Out(&H378, valorshort) 'En el puerto 378 (valor hexadecimal) del puerto
paralelo, se manda como salida el valor hexadecimal contenido en
la variable "valorhexadecimal" en tipo Short.
End Sub
Private Sub bulb8off_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bulb8off.Click
bulb8on.Visible = True
bulb8off.Visible = False
Label8.Text = "1"
binary378port = Label1.Text + Label2.Text + Label3.Text
+ Label4.Text + Label5.Text + Label6.Text + Label7.Text +
Label8.Text
'Se convierte el valor binario contenido
en la variable "binary378port" a decimal.
valordecimal = 0
For i As Integer =
Len(binary378port) To
1 Step
-1
valordecimal = valordecimal + Val(Mid(binary378port, i,
1)) * 2 ^ (8 – i) 'Toma el
último dígito y lo multiplica por 2 a la cero,
luego el penúltimo por 2 a la uno y así
sucesivamente, pues se está realizando la
conversión de binario a decimal.
Next
'Se convierte el valor decimal
(contenido en la variable "valordecimal") al correspondiente
hexadecimal en tipo Short.
valorshort = CShort(valordecimal)
'Se manda el valor correspondiente al
puerto paralelo para que se enciendan y apaguen los focos
correspondientes.
Out(&H378, valorshort) 'En el puerto 378 (valor hexadecimal) del puerto
paralelo, se manda como salida el valor hexadecimal contenido en
la variable "valorhexadecimal" en tipo Short.
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
azulRadioButton.Select() 'Para que al cargar el formulario aparezca
predeterminadamente seleccionado el color azul.
normalRadioButton.Select() 'Para que al cargar el formulario aparezca
predeterminadamente seleccionada la velocidad Normal para el
conteo binario.
'Se deshabilitan todos los PictureBox al
cargar el formulario.
bulb1on.Enabled = False
bulb1off.Enabled = False
bulb2on.Enabled = False
bulb2off.Enabled = False
bulb3on.Enabled = False
bulb3off.Enabled = False
bulb4on.Enabled = False
bulb4off.Enabled = False
bulb5on.Enabled = False
bulb5off.Enabled = False
bulb6on.Enabled = False
bulb6off.Enabled = False
bulb7on.Enabled = False
bulb7off.Enabled = False
bulb8on.Enabled = False
bulb8off.Enabled = False
End Sub
Private Sub
contadorbinarioButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
contadorbinarioButton.Click
'Reiniciar variables públicas o
globales que coordinan el conteo binario con los
focos.
contadorfoco7 = 0
contadorfoco6 = 0
contadorfoco5 = 0
contadorfoco4 = 0
contadorfoco3 = 0
contadorfoco2 = 0
contadorfoco1 = 0
'Si está seleccionada velocidad
lenta para el conteo binario.
If lentoRadioButton.Checked
= True Then
Timer1.Interval = 2000
End If
'Si está seleccionada velocidad
normal para el conteo binario.
If
normalRadioButton.Checked = True Then
Timer1.Interval = 1000
End If
'Si está seleccionada velocidadd
rápida para el conteo binario.
If
rapidoRadioButton.Checked = True Then
Timer1.Interval = 500
End If
'Para quitar sonidos cargados
previamente (si es que los hay).
If
AxWindowsMediaPlayer.currentPlaylist.count > 0
Then 'Si
existiera música cargada, con
la siguiente línea se quita.
AxWindowsMediaPlayer.currentPlaylist.removeItem(AxWindowsMediaPlayer.currentMedia)
End If
'Para que no estén activados los
botones stopmusicButton y playmusicButton a la vez, sino que
solamente uno de los dos.
playmusicButton.Enabled = True
stopmusicButton.Enabled = False
'Se deshabilita el Timer1 para detener
el conteo binario (reiniciarlo).
Timer1.Enabled = False
'Se ponen visibles todos los PictureBox
con foto de foco apagado y se ponen invisibles todos los
PictureBox con foto de foco encendido (para reiniciar el sistema
de luces o resetearlo). Se ponen todos los Label en
"0".
bulb1off.Visible = True
bulb1on.Visible = False
Label1.Text = "0"
bulb2off.Visible = True
bulb2on.Visible = False
Label2.Text = "0"
bulb3off.Visible = True
bulb3on.Visible = False
Label3.Text = "0"
bulb4off.Visible = True
bulb4on.Visible = False
Label4.Text = "0"
bulb5off.Visible = True
bulb5on.Visible = False
Label5.Text = "0"
bulb6off.Visible = True
bulb6on.Visible = False
Label6.Text = "0"
bulb7off.Visible = True
bulb7on.Visible = False
Label7.Text = "0"
bulb8off.Visible = True
bulb8on.Visible = False
Label8.Text = "0"
'Se deshabilitan todos los PictureBox al
inicializar el contador binario.
bulb1on.Enabled = False
bulb1off.Enabled = False
bulb2on.Enabled = False
bulb2off.Enabled = False
bulb3on.Enabled = False
bulb3off.Enabled = False
bulb4on.Enabled = False
bulb4off.Enabled = False
bulb5on.Enabled = False
bulb5off.Enabled = False
bulb6on.Enabled = False
bulb6off.Enabled = False
bulb7on.Enabled = False
bulb7off.Enabled = False
bulb8on.Enabled = False
bulb8off.Enabled = False
'Se habilita el Timer1 para inicializar
el conteo binario.
Timer1.Enabled = True
'Timer2andonactivation.Enabled =
True
End Sub
Private Sub
cliconoffButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cliconoffButton.Click
'Para quitar sonidos cargados
previamente (si es que los hay).
If
AxWindowsMediaPlayer.currentPlaylist.count > 0
Then 'Si
existiera música cargada, con la siguiente línea se
quita.
AxWindowsMediaPlayer.currentPlaylist.removeItem(AxWindowsMediaPlayer.currentMedia)
End If
'Para que no estén activados los
botones stopmusicButton y playmusicButton a la vez, sino que
solamente uno de los dos.
playmusicButton.Enabled = True
stopmusicButton.Enabled = False
'Se deshabilita el Timer1 para detener
el conteo binario (por si estuviera activado).
Timer1.Enabled = False
'Se ponen visibles todos los PictureBox
con foto de foco apagado y se ponen invisibles todos los
PictureBox con foto de foco encendido (para reiniciar el sistema
de luces o resetearlo). Se ponen todos los Label en
"0".
bulb1off.Visible = True
bulb1on.Visible = False
Label1.Text = "0"
bulb2off.Visible = True
bulb2on.Visible = False
Label2.Text = "0"
bulb3off.Visible = True
bulb3on.Visible = False
Label3.Text = "0"
bulb4off.Visible = True
bulb4on.Visible = False
Label4.Text = "0"
bulb5off.Visible = True
bulb5on.Visible = False
Label5.Text = "0"
bulb6off.Visible = True
bulb6on.Visible = False
Label6.Text = "0"
bulb7off.Visible = True
bulb7on.Visible = False
Label7.Text = "0"
bulb8off.Visible = True
bulb8on.Visible = False
Label8.Text = "0"
'Se habilitan todos los
PictureBox.
bulb1on.Enabled = True
bulb1off.Enabled = True
bulb2on.Enabled = True
bulb2off.Enabled = True
bulb3on.Enabled = True
bulb3off.Enabled = True
bulb4on.Enabled = True
bulb4off.Enabled = True
bulb5on.Enabled = True
bulb5off.Enabled = True
bulb6on.Enabled = True
bulb6off.Enabled = True
bulb7on.Enabled = True
bulb7off.Enabled = True
bulb8on.Enabled = True
bulb8off.Enabled = True
'De aquí en adelante es la parte
de programación para mandar valores al
puerto paralelo.
binary378port = Label1.Text + Label2.Text + Label3.Text
+ Label4.Text + Label5.Text + Label6.Text + Label7.Text +
Label8.Text
'Se convierte el valor binario contenido
en la variable "binary378port" a decimal.
valordecimal = 0
For i As Integer =
Len(binary378port) To
1 Step
-1
valordecimal = valordecimal + Val(Mid(binary378port, i,
1)) * 2 ^ (8 – i) 'Toma el
último dígito y lo multiplica por 2 a la cero,
luego el penúltimo por 2 a la uno y así
sucesivamente, pues se está realizando la
conversión de binario a decimal.
Next
'Se convierte el valor decimal
(contenido en la variable "valordecimal") al correspondiente
hexadecimal en tipo Short.
valorshort = CShort(valordecimal)
'Se manda el valor correspondiente al
puerto paralelo para que se enciendan y apaguen los focos
correspondientes.
Out(&H378, valorshort) 'En el puerto 378 (valor hexadecimal) del puerto
paralelo, se manda como salida el valor hexadecimal contenido en
la variable "valorhexadecimal" en tipo Short.
End Sub
Private Sub
apagarfocosButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles apagarfocosButton.Click
'Para quitar sonidos cargados
previamente (si es que los hay).
If
AxWindowsMediaPlayer.currentPlaylist.count > 0
Then 'Si
existiera música cargada, con la siguiente línea se
quita.
AxWindowsMediaPlayer.currentPlaylist.removeItem(AxWindowsMediaPlayer.currentMedia)
End If
'Para que no estén activados los
botones stopmusicButton y playmusicButton a la vez, sino que
solamente uno de los dos.
playmusicButton.Enabled = True
stopmusicButton.Enabled = False
'Se deshabilitan todos los
PictureBox.
bulb1on.Enabled = False
bulb1off.Enabled = False
bulb2on.Enabled = False
bulb2off.Enabled = False
bulb3on.Enabled = False
bulb3off.Enabled = False
bulb4on.Enabled = False
bulb4off.Enabled = False
bulb5on.Enabled = False
bulb5off.Enabled = False
bulb6on.Enabled = False
bulb6off.Enabled = False
bulb7on.Enabled = False
bulb7off.Enabled = False
bulb8on.Enabled = False
bulb8off.Enabled = False
'Se deshabilita el Timer1 para detener
el conteo binario (por si estuviera activado).
Timer1.Enabled = False
Página anterior | Volver al principio del trabajo | Página siguiente |